///*
// * To change this template, choose Tools | Templates
// * and open the template in the editor.
// */
package Model;

import java.sql.*;
import javax.swing.JOptionPane;

/**
 *
 * @author sucios.com
 */
public class Connect {

    private static String bd = "admontitlevalues";
    private static Connection conexion;
    private static Statement sentencia;
    private static ResultSet resultado;
    private static String query = "";
    private static String ruta = "";
    private static String usuario;
    private static String password;

    public static String getPassword() {
        return password;
    }

    public static void setPassword(String password) {
        Connect.password = password;
    }

    public static String getUsuario() {
        return usuario;
    }

    public static void setUsuario(String usuario) {
        Connect.usuario = usuario;
    }

    public static String getRuta() {
        return ruta;
    }

    public static void setRuta(String ruta) {
        Connect.ruta = ruta;
    }

    public static Connection getConexion() {
        return conexion;
    }

    public static void setConexion(Connection conexion) {
        Connect.conexion = conexion;
    }

    public static String getQuery() {
        return query;
    }

    public static void setQuery(String query) {
        Connect.query = query;
    }

    public static ResultSet getResultado() {
        return resultado;
    }

    public static void setResultado(ResultSet resultado) {
        Connect.resultado = resultado;
    }

    public static Statement getSentencia() {
        return sentencia;
    }

    public static void setSentencia(Statement sentencia) {
        Connect.sentencia = sentencia;
    }

    public static void conectar() {

        try {
            // cadena de conexion con la ruta fisica a la BD
            setRuta("jdbc:mysql://localhost/" + bd);
            setUsuario("root");
            setPassword("");
            Class.forName("org.gjt.mm.mysql.Driver");
            setConexion(DriverManager.getConnection(getRuta(), getUsuario(), getPassword()));
            System.out.println("PERFECTO FUNCIONA");
//            JOptionPane.showMessageDialog(null, "\nNETBEANS CONECTADO CON MYSQL\n"
//                    + "LISTO YA PUEDES TRABAJAR......");
        } catch (Exception e) {
            //System.out.println("\nError al conectar con la BD: " + pollo.getMessage() + "\n");
            System.out.println("\nError al realizar alguna accion del programa.\n\n" + e);
        }

    }

    public static void hacerCommit() {
        try {
            conexion.commit();
        } catch (SQLException e) {
            System.out.println(e);
        }
    }

    public static void Guardar() {

        System.out.println("en conexion");
        conectar();
        try {

            setSentencia(getConexion().createStatement());
            sentencia.executeUpdate(query);
            JOptionPane.showMessageDialog(null, "OK DATO REGISTRADO");
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "ERROR");
            System.out.println("error al ejecutar el sql " + e.toString());
        }
    }

    public static void Modificar() {

        System.out.println("en conexion");
        conectar();
        try {

            setSentencia(getConexion().createStatement());
            sentencia.executeUpdate(query);
            JOptionPane.showMessageDialog(null, "OK DATO ACTUALIZADO");
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "ERROR");
            System.out.println("error al ejecutar el sql " + e.toString());
        }
    }

    public static void ModificarEstado() {

        System.out.println("en conexion");
        conectar();
        try {

            setSentencia(getConexion().createStatement());
            sentencia.executeUpdate(query);
            //JOptionPane.showMessageDialog(null, "OK DATO ACTUALIZADO");
            System.out.println("se actualizo el estado correctamente");
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "EL ELEMENTO YA SE ENCUENTRA EN EL SISTEMA");
            System.out.println("error al ejecutar el sql " + e.toString());
        }
    }

    public void Consultar() {
        System.out.println("en conexion");
        conectar();
        try {
            setSentencia(getConexion().createStatement());
            setResultado(getSentencia().executeQuery(getQuery()));
            hacerCommit();
        } catch (SQLException e) {
            System.out.println("error al ejecutar el sql " + e.toString());
        }
    }

    public static void Borrar() {

        System.out.println("en conexion");
        conectar();
        try {

            setSentencia(getConexion().createStatement());
            sentencia.executeUpdate(query);
            JOptionPane.showMessageDialog(null, "REGISTRO ELIMINADO");
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "EL ELEMENTO YA SE ENCUENTRA EN EL SISTEMA");
            System.out.println("error al ejecutar el sql " + e.toString());
        }
    }

    public static boolean EvitarDesbordePorArriba() {
        try {
            return getResultado().isAfterLast();
        } catch (SQLException e) {
            return false;
        }
    }

    public static boolean EvitarDesbordePorDebajo() {
        try {
            return getResultado().isBeforeFirst();
        } catch (SQLException e) {
            return false;
        }
    }

    public void cerrarConexion() {
        try {
            getConexion().close();
            System.out.println("SE HA CERRADO LA CONEXION");
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }

    }

    public void cerrarResultado() {
        try {
            getResultado().close();

            System.out.println("SE HA CERRADO RESULSET");
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }

    }

    public void cerrarStatement() {
        try {
            getSentencia().close();

            System.out.println("SE HA CERRADO SENTENCIA");
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }

    }

    public static boolean siguiente() {
        boolean r = true;
        try {
            if (resultado.next()) {
                r = true;
            } else {
                r = false;
            }
            return r;
        } catch (Exception e) {
            r = false;
            System.out.println("Error al ir al Siguiente" + e);
            return r;
        }
    }
    
    public static void main(String[] args) {
        conectar();
    }
}
